# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: 6543 <6543@obermui.de>
pkgname=synapse
pkgver=1.62.0
pkgrel=0
pkgdesc="Matrix reference homeserver"
url="https://github.com/matrix-org/synapse"
arch="noarch !armhf !s390x !ppc64le" # Tests fail
license="Apache-2.0"
depends="
	python3
	py3-asn1
	py3-asn1-modules
	py3-attrs
	py3-authlib
	py3-bcrypt
	py3-bleach
	py3-canonicaljson
	py3-daemonize
	py3-eliot
	py3-frozendict
	py3-idna
	py3-ijson
	py3-jinja2
	py3-jsonschema
	py3-jwt
	py3-lxml
	py3-matrix-common
	py3-msgpack
	py3-netaddr
	py3-openssl
	py3-phonenumbers
	py3-pillow
	py3-prometheus-client
	py3-psycopg2
	py3-pymacaroons
	py3-pynacl
	py3-saml2
	py3-service_identity
	py3-signedjson
	py3-six
	py3-sortedcontainers
	py3-treq
	py3-twisted
	py3-txacme
	py3-txredisapi
	py3-typing-extensions
	py3-yaml
	"
makedepends="
	py3-build
	py3-installer
	py3-poetry-core
	"
checkdepends="
	$depends
	py3-mock
	py3-parameterized
	py3-hiredis
	"
pkgusers="synapse"
pkggroups="synapse"
install="$pkgname.pre-install $pkgname.post-install"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/matrix-org/$pkgname/archive/v$pkgver.tar.gz
	synapse.initd
	synapse.confd
	"

# secfixes:
#   1.61.1-r0:
#     - CVE-2022-31052
#   1.47.1-r0:
#     - CVE-2021-41281
#   1.41.1-r0:
#     - CVE-2021-39164
#     - CVE-2021-39163
#   1.33.2-r0:
#     - CVE-2021-29471
#   1.30.1-r0:
#     - CVE-2021-3449
#   1.24.0-r0:
#     - CVE-2020-26257
#   1.21.1-r0:
#     - CVE-2020-26891
#   1.20.0-r0:
#     - CVE-2020-26890

# Skip tests for arch that freeze at test
case "$CARCH" in
	aarch64) options="$options !check" ;;
esac

build() {
	# XXX: hack to make poetry not ignore files
	GIT_DIR=. python3 -m build --no-isolation --wheel
}

check() {
	python3 -m installer -d testenv \
		dist/matrix_$pkgname-$pkgver-py3-none-any.whl
	local sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')"
	PATH="$PWD/testenv/usr/bin:$PATH" PYTHONPATH="$PWD/testenv/$sitedir" python3 -m twisted.trial tests
}

package() {
	python3 -m installer -d "$pkgdir" dist/matrix_$pkgname-$pkgver-py3-none-any.whl

	install -d -g synapse -o synapse -m775 \
		"$pkgdir"/etc/synapse \
		"$pkgdir"/var/lib/synapse

	cp -a synapse/res "$pkgdir"/var/lib/synapse
	chown -R synapse:synapse "$pkgdir"/var/lib/synapse/res

	install -Dm755 "$srcdir"/synapse.initd "$pkgdir"/etc/init.d/synapse
	install -Dm644 "$srcdir"/synapse.confd "$pkgdir"/etc/conf.d/synapse
}

sha512sums="
2bf9264f08fab29e8707317b69c52a4234bb25443c342ba43a27e06c506bcca1a9bdb211a99802abbca551e4f4288f68775d4629493b39d58dfcc8d8d1ca8ab8  synapse-1.62.0.tar.gz
7ac08b676b246647ebfa50f46525ed81d4fa53e83ab11d984f1cedc79ffbbcf12234424215f44f7038b82b7523c1e2fcac306d8bdc9d64648c5d994017b51e55  synapse.initd
7c022f0e00c8ac363d6d2e003b6389fb06a3934f68390ebac156cb46bc1366585e6b6cda07b15176bc62a00f5bf21bfda153ff5418b07331257a7075102a6f83  synapse.confd
"
